<?php
// questo script aggiunge nella tabella manufacturer_to_store
// le marche inserite non presenti
 
// Configuration
require_once('../config.php');

define ('DIR_IMAGE_CATEGORY', DIR_IMAGE .'data/category/' );
define ('DIR_IMAGE_LOAD', DIR_SYSTEM . '../var/caricamento/image/' );

$file_log = '';

if ( count($argv) ) {
	$file_log = $argv[1];
}

define ('FILE_LOG',   $file_log);

// Startup
require_once(DIR_SYSTEM . 'startup.php');

// Config
$config = new Config();

// Database
$db = new DB(DB_DRIVER, DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE);

require_once('common.php');

$queryStr = "select * from category_load where elab_chk = 0";

$category_load = $db->query($queryStr);

if ($category_load->num_rows) {
	
  LogBatch::getInstance()->write('Ci sono categorie '. $category_load->num_rows .' caricate sulla category_load');

	foreach ($category_load->rows as $category) {
	
		$name           = trim($category['name']);
		$image          = $category['image'];
    $category_code  = trim($category['category_code']);
		$description    = trim($category['description']);
		$status         = (int)$category['status'];

    $name           = $db->escape($name);
    $description    = $db->escape($description);
    $category_code  = $db->escape($category_code);

    $queryStr = "select category_id from category_description  where category_code = '$category_code' ";
    $query = $db->query($queryStr);

    $category_id = -1;
    $esito = 'Inserito nuovo record';
    
    if ( $query->num_rows ) {
      LogBatch::getInstance()->write('Aggiorno la categoria con category_code = '. $category_code);
	    
      // si tratta di un aggiornamento 
      $category_id = $query->row['category_id'];
      
      // Aggiorno la categoria
      $queryStr = "update category set  status = $status 
                   where category_id = $category_id";
      $db->query($queryStr);
      
      // Aggiorno la descrizione della categoria
      $queryStr = "update category_description 
                   set description = '$description',  
                       name = '$name'
                   where category_id = $category_id";
      $db->query($queryStr);
      
      $esito = 'Aggiornato record';
    } else {

      // si tratta di un nuovo inserimento
      LogBatch::getInstance()->write('Inserisco la nuova categoria con category_code = '. $category_code);

      $parent_id = 0;
      $top = 1;

      // inserisco la categoria
      $queryStr = " insert into category (parent_id, top, `column`, status, date_added, date_modified)
                    values  ($parent_id, $top, 0, $status, now(), now());";
      $db->query($queryStr);
      $category_id = $db->getLastId();

      // inserisco la categoria
      $queryStr = " insert into category_description 
                    (category_id, language_id, name, description, category_code)
                    values  ($category_id, $language_id, '$name', '$description', '$category_code')";
      $db->query($queryStr);

      $queryStr = "insert into category_to_store values ( $category_id, 0 )";	
      $db->query($queryStr);	

      // Aggiungo la gestione della image
      if ( $image != '' ) { // se il nome dell'image e' valorizzato

        $imageNew = $image;
         
        // LogBatch::getInstance()->write('Image = ['. $image.']');

        if ( file_exists ( DIR_IMAGE_LOAD . $image ) ) {

          LogBatch::getInstance()->write('L\'image = ['. $image. '] della categoria esiste nella directory di caricamento');

          // image esiste nella directory caricamento ... verifico se esiste
          // nel sistema un'image con lo stesso nome ...
          if ( file_exists ( DIR_IMAGE_CATEGORY . $image ) ) {
            LogBatch::getInstance()->write('L\'image = ['. $image. '] esiste nella directory di '.DIR_IMAGE_CATEGORY.' la rinomino ...');
            $imageNew = $category_code.'_'.$image; // aggiungo il codice categoria
          }

          // LogBatch::getInstance()->write('Image ='. $image);
        }

        // copiare l'image
        if (!@copy(DIR_IMAGE_LOAD . $image, DIR_IMAGE_CATEGORY . $imageNew)) {
          LogBatch::getInstance()->write('Fallito copia della image ='. $image. ' nella cartella di sistema');
        } else {
          $image = 'data/category/'. $imageNew;
          $image    = $db->escape($image);
          $queryStr = "UPDATE category set image = '$image' where category_id = $category_id";
          $db->query($queryStr);
        }
      } // end if ( $image != '' )
      
    } // end if ( $query->num_rows )
	}

  LogBatch::getInstance()->write('Aggiorno tutti i record sulla category_load ');

  $db->query("update category_load set elab_chk = 1 where elab_chk = 0");
	
} else {
  LogBatch::getInstance()->write('Non ci sono categorie caricate sulla category_load');
}

